Matthias Clasen [Wed, 21 Oct 2020 12:00:09 +0000 (08:00 -0400)]
range: Hide internals from accessibility
The nameless, faceless gizmos inside a range do not
contribute to the accessible experience at all, lets
not add them to the tree. All the accessible functionality
is on the main widget (either a scale or a scrollbar).
Matthias Clasen [Wed, 21 Oct 2020 11:59:56 +0000 (07:59 -0400)]
Cosmetics
Matthias Clasen [Wed, 21 Oct 2020 03:30:35 +0000 (23:30 -0400)]
frame: Set up accessible relations
Mark the child as labelled-by the label.
Matthias Clasen [Wed, 21 Oct 2020 11:43:58 +0000 (11:43 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2729
Timm Bäder [Wed, 21 Oct 2020 08:17:45 +0000 (08:17 +0000)]
Merge branch 'wip/exalm/nullable' into 'master'
widget: Add missing (nullable) on binding functions
See merge request GNOME/gtk!2730
Alexander Mikhaylenko [Tue, 20 Oct 2020 11:26:17 +0000 (16:26 +0500)]
widget: Add missing (nullable) on binding functions
Even though they are marked as (skip), they are used in Vala and have wrong
types there atm.
Matthias Clasen [Wed, 21 Oct 2020 03:19:30 +0000 (23:19 -0400)]
docs: Document more accessible roles
Document that GtkText is skipped in accessibility.
Matthias Clasen [Wed, 21 Oct 2020 03:19:18 +0000 (23:19 -0400)]
Cosmetics
Typo fix.
Matthias Clasen [Wed, 21 Oct 2020 03:09:11 +0000 (23:09 -0400)]
docs: Document more accessible roles
GtkColumnView and its various components use a lot
of accessible roles.
Matthias Clasen [Wed, 21 Oct 2020 02:53:30 +0000 (22:53 -0400)]
docs: Document more accessible roles
GtkListView and GtkGridView were missing this as well.
Matthias Clasen [Wed, 21 Oct 2020 02:51:11 +0000 (22:51 -0400)]
docs: Document accessible roles of some classes
GtkListBox and GtkFlowBox were missing this.
Matthias Clasen [Wed, 21 Oct 2020 02:44:24 +0000 (22:44 -0400)]
a11y: Add some more tests
Matthias Clasen [Wed, 21 Oct 2020 01:56:54 +0000 (21:56 -0400)]
inspector: Show accessible object path
Show the object path of the object on the a11y bus,
this is can be useful information. While we are here,
make sure that the Inspector does not throw criticals
when used with GTK_NO_A11Y=1.
Matthias Clasen [Wed, 21 Oct 2020 01:31:23 +0000 (21:31 -0400)]
atsi: Fix emission of text selection changes
We were not emitting text-selection-changed and
text-caret-moved as expected.
Matthias Clasen [Wed, 21 Oct 2020 01:27:39 +0000 (21:27 -0400)]
a11y: Fix handling of LABELLED_BY relation
There were several places where we were confusing
GList and GSList and list->data and list->next, causing
a crash in the accessible name computation for buttons
with mnemonic labels.
Matthias Clasen [Tue, 20 Oct 2020 22:26:38 +0000 (18:26 -0400)]
docs: Mention subclassing and destroy in the migration guide
Mention changes regarding subclassing and life-cycle
handling in the migration guide.
Benjamin Otte [Tue, 20 Oct 2020 14:05:49 +0000 (14:05 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
Wip/otte/for master
Closes #3280
See merge request GNOME/gtk!2725
Matthias Clasen [Tue, 20 Oct 2020 05:57:45 +0000 (05:57 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Some more a11y tests
See merge request GNOME/gtk!2726
Matthias Clasen [Tue, 20 Oct 2020 05:12:20 +0000 (01:12 -0400)]
a11y: Add tests for GtkFlowBox
Test that roles, states and properties are as expected.
Matthias Clasen [Tue, 20 Oct 2020 05:07:13 +0000 (01:07 -0400)]
a11y: Add tests for GtkListBox
Test that roles, states and properties are as expected.
Matthias Clasen [Tue, 20 Oct 2020 04:46:07 +0000 (00:46 -0400)]
a11y: Add tests for GtkStack and GtkStackSwitcher
Test that the roles, states and relations are
as expected.
Matthias Clasen [Tue, 20 Oct 2020 04:24:26 +0000 (00:24 -0400)]
a11y: Add a test for label properties
Now that we set the label property, we should test it too.
Benjamin Otte [Tue, 20 Oct 2020 02:21:34 +0000 (04:21 +0200)]
gtk: Remove unused header include
gtkcssnodeprivate.h was mainly used for repositioning CSS nodes in
gadgets, and gadgets are gone now.
Benjamin Otte [Tue, 20 Oct 2020 02:05:52 +0000 (04:05 +0200)]
entry: Keep widget order
... instead of just ordering the CSS nodes.
Benjamin Otte [Tue, 20 Oct 2020 02:00:56 +0000 (04:00 +0200)]
flowbox: Keep widget order
... instead of just ordering the CSS nodes.
Benjamin Otte [Tue, 20 Oct 2020 01:56:30 +0000 (03:56 +0200)]
listbox: Reorder the widgets when sorting
... instead of just reordering the CSS nodes.
Benjamin Otte [Tue, 20 Oct 2020 01:54:07 +0000 (03:54 +0200)]
listitemwidget: Remove unnecessary code
gtk_widget_insert_after() reorders CSS nodes properly.
Benjamin Otte [Tue, 20 Oct 2020 01:52:51 +0000 (03:52 +0200)]
notebook: Remove unnecessary code
gtk_widget_insert_after() reorders CSS nodes properly.
Also fix page reordering code to actually reorder the widget instead of
just the CSS nodes.
Benjamin Otte [Mon, 19 Oct 2020 23:51:58 +0000 (01:51 +0200)]
box: Remove unnecessary code
gtk_widget_insert_after() reorders CSS nodes properly.
Benjamin Otte [Mon, 19 Oct 2020 23:50:12 +0000 (01:50 +0200)]
widget: Always update the CSS node
Anybody who keeps their own CSS nodes around or wants to order CSS nodes
different from widgets will from now on have to do it manually all the
time.
This is outdated behavior, nobody should be doing either of those two
things.
Also, the correct case is much more common, and not doing it
automatically was causing bugs.
Fixes #3280
Matthias Clasen [Tue, 20 Oct 2020 01:45:17 +0000 (01:45 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Some a11y docs and fixes
See merge request GNOME/gtk!2724
Matthias Clasen [Tue, 20 Oct 2020 01:13:27 +0000 (21:13 -0400)]
a11y: Fix accessible tree inconsistency
The stack page objects were not properly integrated
in the accessible tree - they were appearing as parent
of the pages when navigating up, but not as children
of the stack when navigating down.
Matthias Clasen [Tue, 20 Oct 2020 01:15:08 +0000 (21:15 -0400)]
stack: Minor doc addition
Matthias Clasen [Tue, 20 Oct 2020 00:01:57 +0000 (20:01 -0400)]
docs: Flesh out a11y section
Add some advice for making custom widgets accessible.
Matthias Clasen [Mon, 19 Oct 2020 21:26:47 +0000 (21:26 +0000)]
Merge branch 'wip/chergert/fix-macos-surface-under-pointer' into 'master'
macos: fix discovery of surface under pointer
See merge request GNOME/gtk!2722
Emmanuele Bassi [Mon, 19 Oct 2020 20:26:57 +0000 (20:26 +0000)]
Merge branch 'ebassi/for-master' into 'master'
Ebassi/for master
See merge request GNOME/gtk!2720
Matthias Clasen [Mon, 19 Oct 2020 20:16:21 +0000 (20:16 +0000)]
Merge branch 'a11y/editable' into 'master'
Improve the accessible support for editables
See merge request GNOME/gtk!2719
Christian Hergert [Mon, 19 Oct 2020 18:24:34 +0000 (11:24 -0700)]
macos: fix discovery of surface under pointer
Matthias Clasen [Mon, 19 Oct 2020 18:58:34 +0000 (14:58 -0400)]
a11y: Tweak name and description computation
Instead of falling back to the role nick for both,
fall back to the class name for the name, and to
the empty string for the description. This makes
labels show up in Accerciser the same way they
did in GTK 3, and seems more useful to me than
the alternative.
Matthias Clasen [Mon, 19 Oct 2020 18:57:43 +0000 (14:57 -0400)]
atspi: Use name and description as provided
GtkATContext already does fallbacks to derive values
for these, so no need for the atspi implementation to
do its own fallback on top of that.
Matthias Clasen [Mon, 19 Oct 2020 18:28:32 +0000 (14:28 -0400)]
label: Set the accessible label property
This will make label text show up in ATs again.
Emmanuele Bassi [Mon, 19 Oct 2020 17:39:40 +0000 (18:39 +0100)]
docs: Add a section on a11y patterns
Emmanuele Bassi [Mon, 19 Oct 2020 17:37:30 +0000 (18:37 +0100)]
docs: Start outlining a11y authoring practices
We should have documentation for application developers and widget
authors, so they can deal with the new accessibility API.
Matthias Clasen [Mon, 19 Oct 2020 16:58:29 +0000 (12:58 -0400)]
a11y: Rename some methods
Our EditableText implementation works fine for any
editable, so don't name the functions in a way that
looks like they are only for entries.
Matthias Clasen [Mon, 19 Oct 2020 16:56:50 +0000 (12:56 -0400)]
gtk-demo: Set an accessible role
Set the expected accessible role on the tagged entry
widget in the demo of the same name. Accessible tools
may decide to ignore widgets that have the wrong role,
so setting an appropriate role is important.
Matthias Clasen [Mon, 19 Oct 2020 16:54:45 +0000 (16:54 +0000)]
Merge branch 'a11y/component' into 'master'
a11y: Implement Component
See merge request GNOME/gtk!2718
Emmanuele Bassi [Fri, 16 Oct 2020 16:03:50 +0000 (17:03 +0100)]
a11y: Rework accessible name/description computation
The ARIA spec determines the name and description of accessible elements
in a more complex way that simply mapping to a single property; instead,
it will chain up multiple definitions (if it finds them). For instance,
let's assume we have a button that saves a file selected from a file
selection widget; the widgets have the following attributes:
- the file selection widget has a "label" attribute set to the
selected file, e.g. "Final paper.pdf"
- the "download" button has a "label" attribute set to the
"Download" string
- the "download" button has a "labelled-by" attribute set to
reference the file selection widget
The ARIA spec says that the accessible name of the "Download" button
should be computed as "Download Final paper.pdf".
The algorithm defined in section 4.3 of the WAI-ARIA specification
applies to both accessible names (using the "label" and "labelled-by"
attributes), and to accessible descriptions (using the "description" and
"described-by" attributes).
Matthias Clasen [Mon, 19 Oct 2020 16:44:50 +0000 (12:44 -0400)]
atspi: Implement Text for more editables
Our Text implementation requires that we have
a GtkEditable with a delegate that is a GtkText
widget.
This change make the Text implementation work for
the custom widget in the tagged entry demo.
Goran Vidović [Mon, 19 Oct 2020 16:36:42 +0000 (16:36 +0000)]
Update Croatian translation
(cherry picked from commit
fab2558747ace63ee656257f7001f81b3c6b9b49)
Matthias Clasen [Mon, 19 Oct 2020 16:36:54 +0000 (12:36 -0400)]
Add gtk_editable_get_delegate
We need access to the delegate in the a11y layer,
so we might as well make this function public.
Matthias Clasen [Mon, 19 Oct 2020 15:45:21 +0000 (11:45 -0400)]
atspi: Emit bounds-changed
This is using the new bounds_change vfunc in GtkATContext.
Matthias Clasen [Wed, 14 Oct 2020 01:20:08 +0000 (21:20 -0400)]
widget: Mark the size as changed when it changes
This notifies the AT context that the widgets size
has changed.
Matthias Clasen [Mon, 19 Oct 2020 15:33:38 +0000 (11:33 -0400)]
a11y: Add bounds change api
Add a way for GTK to pass bounds change information
to the AT context.
Matthias Clasen [Wed, 14 Oct 2020 01:23:22 +0000 (21:23 -0400)]
atspi: Implement Component
Implement the non-questionable parts of the Component interface
for accessibles which are widgets.
This does not include:
- global coordinates
- setters
- scrolling
- alpha, layers, zorder, and the like
Matthias Clasen [Mon, 19 Oct 2020 15:19:57 +0000 (11:19 -0400)]
a11y: Add a separate vfunc for platform changes
The state_change vfunc is becoming unwieldy. Lets move
the platform changes to their own vfunc, as a start.
Matthias Clasen [Mon, 19 Oct 2020 15:55:44 +0000 (11:55 -0400)]
atspi: Be more careful
We have non-widget accessibles now, so guard against
change notification being emitted on them.
Matthias Clasen [Mon, 19 Oct 2020 16:08:47 +0000 (12:08 -0400)]
Cosmetics
Add some more fold markers.
Matthias Clasen [Mon, 19 Oct 2020 16:00:53 +0000 (12:00 -0400)]
Cosmetics
Matthias Clasen [Mon, 19 Oct 2020 15:24:09 +0000 (11:24 -0400)]
Cosmetics
Matthias Clasen [Mon, 19 Oct 2020 15:00:17 +0000 (15:00 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Various columnview fixes
Closes #3265, #3272, and #3276
See merge request GNOME/gtk!2717
Xavier Claessens [Mon, 19 Oct 2020 13:46:54 +0000 (13:46 +0000)]
Merge branch 'msvc' into 'master'
gdkglcontext: Fix build with MSVC
Closes #3268
See merge request GNOME/gtk!2713
Matthias Clasen [Mon, 19 Oct 2020 13:46:32 +0000 (13:46 +0000)]
Merge branch 'annotations_gtkaboutdialog' into 'master'
Add nullable return annotations in GtkAboutDialog
See merge request GNOME/gtk!2712
Sophie Herold [Mon, 19 Oct 2020 13:46:32 +0000 (13:46 +0000)]
Add nullable return annotations in GtkAboutDialog
Matthias Clasen [Mon, 19 Oct 2020 12:42:33 +0000 (08:42 -0400)]
columnview: Make right-aligned content work
Make right-aligned content work in resized columns.
There is currently no way to make a title right-aligned,
but we can still make it work correctly. This is a follow
up to
7eb0ae39c5549bfaa4e.
Fixes: #3276
Matthias Clasen [Mon, 19 Oct 2020 13:37:20 +0000 (09:37 -0400)]
Adwaita: Put column separators on the left
When resizing columns, we clip a shrunk column
on the right, so the separator disappears in that
case unless we put it on the left side of the other
column.
Xavier Claessens [Sun, 18 Oct 2020 21:14:22 +0000 (17:14 -0400)]
gdkglcontext: Fix build with MSVC
GLDEBUGPROC callback is defined with APIENTRY which is a windows
specific calling convention. That macro expands to nothing when building
on other platforms.
Fixes: #3268.
Matthias Clasen [Mon, 19 Oct 2020 12:22:28 +0000 (08:22 -0400)]
columview: Make resize area a bit larger
This make column resizing feel less like a game
of hit-and-miss. Ultimatively, we should add an
alternative to this.
Matthias Clasen [Mon, 19 Oct 2020 02:34:07 +0000 (22:34 -0400)]
columview: Implement double-click to reset headers
Implement the same behavior as GtkTreeView:
double-click on the header boundary resets the
header to its automatic width.
Fixes: #3272
Matthias Clasen [Mon, 19 Oct 2020 12:28:24 +0000 (08:28 -0400)]
columnview: Make resize cursors reliable
Ensure that the column resize cursor stays in place
for the duration of the resize drag. This is a bit
annoying, since the implicit grab can end up on the
header of a different column from the one we are
resizing, so just set the cursor on all column headers.
Matthias Clasen [Mon, 19 Oct 2020 12:27:35 +0000 (08:27 -0400)]
columnview: Fix more issues with column resizing
Make it so that for overlapping resize rectangles (with
very narrow columns), we prefer the narrow column, so you
can regrow a column after shrinking it all the way.
Related: #3274
Matthias Clasen [Mon, 19 Oct 2020 12:25:09 +0000 (08:25 -0400)]
columnview: Fix some issues with column resizing
Ensure that we place the resize rectangle at the visible
right edge of the column, not where the allocation ends
(we clip the header drawing, after all).
Related: #3274
Matthias Clasen [Sat, 17 Oct 2020 17:11:58 +0000 (13:11 -0400)]
inspector: Clear overlays on unroot
In dispose(), we can't access the root anymore,
since we're already unrooted.
Fixes: #3265
Emmanuele Bassi [Sat, 17 Oct 2020 14:08:29 +0000 (14:08 +0000)]
Merge branch 'patch-1' into 'master'
Add some missing nullable return annotations
See merge request GNOME/gtk!2707
Sophie Herold [Sat, 17 Oct 2020 13:17:56 +0000 (15:17 +0200)]
Add some missing nullable return annotations
Matthias Clasen [Sat, 17 Oct 2020 12:20:04 +0000 (12:20 +0000)]
Merge branch 'wip/chergert/fix-macos-fps-calculation' into 'master'
macos: fix fps calculation for frame timings
See merge request GNOME/gtk!2705
Piotr Drąg [Sat, 17 Oct 2020 09:11:24 +0000 (11:11 +0200)]
Update POTFILES.in
Christian Hergert [Fri, 16 Oct 2020 04:04:51 +0000 (21:04 -0700)]
macos: fix fps calculation for frame timings
We need to mark the timings as complete after adding the
presentation time so that we have a valid FPS for the overlay
widget and/or fishbowl demo.
Matthias Clasen [Thu, 15 Oct 2020 04:41:52 +0000 (00:41 -0400)]
3.99.3
Matthias Clasen [Fri, 16 Oct 2020 03:01:38 +0000 (03:01 +0000)]
Merge branch 'win32.modal' into 'master'
GDK/Win32: Fix modal window handling and window stacking (for GTK4)
See merge request GNOME/gtk!2675
Matthias Clasen [Fri, 16 Oct 2020 02:39:01 +0000 (22:39 -0400)]
docs: Expand opacity docs
Explain the situation with popovers and opacity.
Fixes: #3246
Matthias Clasen [Fri, 16 Oct 2020 02:19:08 +0000 (02:19 +0000)]
Merge branch 'a11y-action-fixes' into 'master'
A11y action fixes
See merge request GNOME/gtk!2703
Chun-wei Fan [Thu, 8 Oct 2020 07:55:29 +0000 (15:55 +0800)]
gdk/Win32: Fix mouse pointer capture
Call SetCapture() explcitly for the (new) modal window so that we make the
modal window respond to mouse input, and also call SetCapture() to the parent
of the transient window that we are destroying so that mouse input capture is
returned to the parent window.
This attempts to fix the following:
* Upon creating a new modal window, the new modal window does not receive
pointer input unless one switches to another program and back
* Upon closing a transient window, the parent window that activated the
transient window does not receive pointer input unless one switches to
another and back
Matthias Clasen [Fri, 16 Oct 2020 02:03:16 +0000 (02:03 +0000)]
Merge branch 'fix-listbox-selection' into 'master'
Revert "listbox: Activate single-click rows if n_press >= 1"
Closes #3263
See merge request GNOME/gtk!2704
Руслан Ижбулатов [Tue, 6 Oct 2020 08:10:47 +0000 (16:10 +0800)]
GDK W32: Remove stacking functions
Stacking functions enforce non-native stacking behaviour that is
mostly unneeded, and doing so introduces bugs and complicates things.
Руслан Ижбулатов [Thu, 8 Oct 2020 04:46:06 +0000 (12:46 +0800)]
Revert "GDK W32: Use SWP_NOOWNERZORDER everywhere it can be applied"
This reverts commit
fc2008f2.
Turns out, we *don't* have code to maintain Z-order. Restacking
code is not doint that, it just enforces a few weird Z-order-related
behaviours.
Chun-wei Fan [Tue, 6 Oct 2020 07:06:47 +0000 (15:06 +0800)]
GDK/Win32: Fix modal window handling
Make sure that we get the state of the modal window properly, and send out the
corresponding notification signals.
This will ensure that we do not try to activate windows that should have become
inactivated due to it opening modal windows and render the program unresponsive
because we are not activating the correct window that is due to receive user
input.
Matthias Clasen [Fri, 16 Oct 2020 01:45:34 +0000 (21:45 -0400)]
Revert "listbox: Activate single-click rows if n_press >= 1"
This reverts commit
e669433cde60068099c7c03235475673d0ed7db4.
This broke selection in several listbox examples.
Fixes: #3263
Matthias Clasen [Fri, 16 Oct 2020 01:29:37 +0000 (21:29 -0400)]
atspi: Properly filter out parent actions
We only want to show relevant, local actions for
widgets, but _gtk_widget_get_action_muxer() will
return the muxer of a parent widget (all the way
up to the toplevel), if the widget does not have
any actions of its own. To detect this situation,
compare what _gtk_widget_get_action_muxer() returns
for the parent widget, and act accordingly.
Matthias Clasen [Fri, 16 Oct 2020 01:28:11 +0000 (21:28 -0400)]
atspi: Fix a thinko in action filtering
get_action_at_index() was trying hard to find out
which actions are valid, only to then return the
invalid ones anyway.
Matthias Clasen [Fri, 16 Oct 2020 00:13:23 +0000 (00:13 +0000)]
Merge branch 'a11y/atspi-action' into 'master'
A11y/atspi action
See merge request GNOME/gtk!2699
Emmanuele Bassi [Thu, 15 Oct 2020 18:21:27 +0000 (19:21 +0100)]
a11y: Add atspi.Action for GtkPasswordEntry
Emmanuele Bassi [Thu, 15 Oct 2020 20:18:35 +0000 (21:18 +0100)]
Allow toggling the password entry visibility programmatically
We are going to need a method for toggling the visibility from the
accessibility layer.
Emmanuele Bassi [Thu, 15 Oct 2020 18:15:12 +0000 (19:15 +0100)]
a11y: Add atspi.Action for GtkEntry
We need to handle the activation on the entry widget, as well as the
activation of the primary and secondary icons.
Emmanuele Bassi [Thu, 15 Oct 2020 20:13:19 +0000 (21:13 +0100)]
Add GtkEntry icon signals emitter
We need a (private) way to programmatically trigger the activation of
the entry's icons, so that we can call it from the accessibility layer.
Emmanuele Bassi [Thu, 15 Oct 2020 15:05:43 +0000 (16:05 +0100)]
a11y: Add atspi.Action for GtkExpander
Emmanuele Bassi [Thu, 15 Oct 2020 14:55:31 +0000 (15:55 +0100)]
a11y: De-duplicate some action code
The widgets with hard coded actions should share more code, instead of
copy-pasting it.
Emmanuele Bassi [Wed, 14 Oct 2020 17:42:00 +0000 (18:42 +0100)]
a11y: Special case buttons and switches
These widgets have specific actions.
Emmanuele Bassi [Wed, 14 Oct 2020 14:10:03 +0000 (15:10 +0100)]
Initial ATSPI Action implementation for widget
Use the actions from the GtkActionMuxer of each widget to populate the
list of actions available.
Matthias Clasen [Thu, 15 Oct 2020 21:00:44 +0000 (21:00 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #3245
See merge request GNOME/gtk!2702
Matthias Clasen [Thu, 15 Oct 2020 20:33:35 +0000 (16:33 -0400)]
Fix compiler warnings